package com.dylon.utils;

public class ChineseToUnicode {

	public static void main(String[] args) {            
        String s = "测试牛逼的水印技术";           
        String tt = gbEncoding(s);      
        System.out.println(tt);
        System.out.println(decodeUnicode("\\u6d4b\\u8bd5\\u6c34\\u5370\\u7f16\\u7801"));      
   	}       
	
	public static String gbEncoding(final String gbString) {         
    	char[] utfBytes = gbString.toCharArray();               
        String unicodeBytes = "";                
        for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {  
            String hexB = Integer.toHexString(utfBytes[byteIndex]);                       
            if (hexB.length() <= 2) {                           
                hexB = "00" + hexB;                     
            }                       
            unicodeBytes = unicodeBytes + "\\u" + hexB;                   
        }                   
        System.out.println("unicodeBytes is: " + unicodeBytes);                   
        return unicodeBytes;            
    }    
	
    public static String decodeUnicode(final String dataStr) {                
    	int start = 0;                  
        int end = 0;                
        final StringBuffer buffer = new StringBuffer();                  
        while (start > -1) {                     
            end = dataStr.indexOf("\\u", start + 2);                      
            String charStr = "";                      
            if (end == -1) {                          
                charStr = dataStr.substring(start + 2, dataStr.length());                     
        	} else {                        
        		charStr = dataStr.substring(start + 2, end);                      
         	}                     
            char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。                    
            buffer.append(new Character(letter).toString());                    
            start = end;                  
    	}                  
    	return buffer.toString();             
	}       
	
}